﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;


namespace Atentado_ao_Riocentro
{
    public class Personagem : ObjetoDoJogo 
    {
       #region Atributos

        public Texture2D texturapersonagem;
        public Vector2 posicaopersonagem;
        public Vector2 tamanhopersonagem;
        public KeyboardState teclado;
        public int velocidade;


        #endregion

        #region Construtor

        public Personagem(Texture2D texturapersonagem, Vector2 posicaopersonagem, Vector2 tamanhopersonagem)
        {
            this.texturapersonagem = texturapersonagem;
            this.posicaopersonagem = posicaopersonagem;
            this.tamanhopersonagem = tamanhopersonagem;
            this.velocidade = 10;
        }

        #endregion

        #region Métodos
        /// <summary>
        /// Métodos responsável pelo desenho do fundo na tela.
        /// </summary>
        /// <param name="spriteBatch"></param>
        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(texturapersonagem, GetCollider(), Color.White);
        }
        /// <summary>
        /// Método responsável pela movimento da personagem.
        /// </summary>
        public void Movimento()
        {
            // atualização do teclado
            teclado = Keyboard.GetState(); 
            //movimenta o personagem para a direita
            if (teclado.IsKeyDown(Keys.Right) && posicaopersonagem.X < 800-50)
            {
                posicaopersonagem.X += velocidade;
            }
            // movimenta o persanoagem para a esquerda
            if (teclado.IsKeyDown(Keys.Left) && posicaopersonagem.X > 0)
            {
                posicaopersonagem.X -= velocidade;
            }
            // movimenta o personagem para cima
            if (teclado.IsKeyDown(Keys.Up) && posicaopersonagem.Y > 0)
            {
                posicaopersonagem.Y -= velocidade;
            }
            // movimenta o personagem para baixo.
            if (teclado.IsKeyDown(Keys.Down) && posicaopersonagem.Y < 500)
            {
                posicaopersonagem.Y += velocidade;
            }

        }

        public Rectangle GetCollider()
        {
            return new Rectangle((int)posicaopersonagem.X,
                (int)posicaopersonagem.Y, (int)tamanhopersonagem.X, (int)tamanhopersonagem.Y);
        }
        #endregion

    }
}
